/**
 * Luiz Fernando
 */
package doencas;

import util.IllegalArgumentException;
import util.RepositorioException;

public class CadastroDoencas {
	private RepositorioDoencas repositorioDoencas;

	public CadastroDoencas(RepositorioDoencas doencas){
		this.repositorioDoencas = doencas;
	}
	
	public void cadastrar(Doenca doenca) throws DoencaJaCadastradaException, RepositorioException {
		if (!repositorioDoencas.existe(doenca.getCodigo())){
			repositorioDoencas.inserir(doenca);
		}else{
			DoencaJaCadastradaException e;
			e = new DoencaJaCadastradaException(doenca.getCodigo());
			throw e;
		}
	}

	public void remover (long codigo) throws DoencaNaoEncontradaException, RepositorioException {
		this.repositorioDoencas.remover(codigo);
	}
	
	public Doenca procurar (long codigo) throws DoencaNaoEncontradaException, RepositorioException{
		return repositorioDoencas.procurar(codigo);
	}
	
	public void atualizar (Doenca doenca) throws DoencaNaoEncontradaException, RepositorioException, IllegalArgumentException{
		repositorioDoencas.atualizar(doenca);
	}
	public RepositorioDoencas procurar(Doenca doenca) throws DoencaNaoEncontradaException, RepositorioException{
		return repositorioDoencas.procurar(doenca);
	}
	public boolean existe(long codigo) throws RepositorioException {
		return this.repositorioDoencas.existe(codigo);
	}
	
	public IteratorDoencas getDoencas() throws RepositorioException {
		return this.repositorioDoencas.getIterator();
	}
}